//
// Created by cktor on 2018/6/11.
//

#ifndef DOORSUPPORT_LOG_H
#define DOORSUPPORT_LOG_H

#define ANDROID 1

#define _NOLOG_   0
#define _VERBOSE_ 1
#define _INFO_    2
#define _ERROR_   3
#define _DEBUG_   4

#ifdef ANDROID

#include <android/log.h>

#define LOG_TAG "SYSTEM_RESOURCE"
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)

#define log(...)   \
    do {\
        __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, "%s - %d  ", __FUNCTION__, __LINE__); \
        __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__); \
    }while(0);

#define _LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__)
#define _LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define _LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
#define _LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)

#elif LINUX
#include <stdio.h>
#define LOGV(...) printf( __VA_ARGS__)
#define LOGD(...) printf( __VA_ARGS__)
#define LOGI(...) printf( __VA_ARGS__)
#define LOGE(...) printf( __VA_ARGS__)

#elif JAVA

#include <stdio.h>
#include <iostream>

using namespace std;

#define LOGV(...) printf( __VA_ARGS__)
#define LOGD(...) printf( __VA_ARGS__)
#define LOGI(...) printf( __VA_ARGS__)
#define LOGE(...) printf( __VA_ARGS__)

#endif

#endif //DOORSUPPORT_LOG_H
